<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Neitzel</name>
    </assembly>
    <members>
        <member name="T:Neitzel.DisposableObject">
            <summary>
            A disposable object.
            </summary>
        </member>
        <member name="P:Neitzel.DisposableObject.Disposed">
            <summary>
            Is the instance disposed?
            </summary>
        </member>
        <member name="M:Neitzel.DisposableObject.#ctor">
            <summary>
            Creates a new instance of DisposableObject.
            </summary>
        </member>
        <member name="M:Neitzel.DisposableObject.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:Neitzel.DisposableObject.Dispose">
            <summary>
            Dispose this instance.
            </summary>
        </member>
        <member name="M:Neitzel.DisposableObject.Dispose(System.Boolean)">
            <summary>
            Dispose this instance.
            </summary>
            <param name="disposing">Controlled dispose not from finalizer.</param>
        </member>
        <member name="T:Neitzel.ExceptionExtensions">
            <summary>
            Extensions to the Exception class.
            </summary>
        </member>
        <member name="M:Neitzel.ExceptionExtensions.GetFullMessage(System.Exception)">
            <summary>
            Get the full message of an exception as string.
            </summary>
            <param name="exception">Exception that should be shown.</param>
            <returns>String that includes the whole exception.</returns>
        </member>
        <member name="T:Neitzel.Network.TcpIpServerConnection">
            <summary>
            Tcp/ip server connection.
            
            This opens a socket on the server and listens for new connections. All connections
            are handled inside.
            </summary>
        </member>
        <member name="T:Neitzel.Network.TcpIpServerConnection.ClientConnection">
            <summary>
            Client connection - all data about a client that is connected to the server.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection.ClientConnection.BufferSize">
            <summary>
            Size of the buffer.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection.ClientConnection.Logger">
            <summary>
            Trace source for all logging in this class.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection.ClientConnection._socket">
            <summary>
            Socket of this connection.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection.ClientConnection.buffer">
            <summary>
            Buffer to read data.
            </summary>
        </member>
        <member name="E:Neitzel.Network.TcpIpServerConnection.ClientConnection.MessageReceived">
            <summary>
            Event that a Message was Received
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.#ctor(System.Net.Sockets.Socket)">
            <summary>
            Creates a new instance of ClientConnection.
            </summary>
            <param name="socket"></param>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.Dispose(System.Boolean)">
            <summary>
            Dispose this client connection.
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.HandleInput">
            <summary>
            Handles possible input of the client.
            </summary>
            <returns>True if client connection should be closed. Else false.</returns>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.Send(System.Byte[])">
            <summary>
            Send the message to the client.
            </summary>
            <param name="message">Message to send.</param>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.Close">
            <summary>
            Close the client connection.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.ClientConnection.OnMessageReceived(System.Object,Neitzel.Network.BytesReceivedEventArgs)">
            <summary>
            A message was received by the client connection.
            </summary>
            <param name="sender">Sender of this event,</param>
            <param name="e">Event.</param>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection._clients">
            <summary>
            A Collection of all connected clients.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection._socket">
            <summary>
            Socket that listens for new connections.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection._ioThread">
            <summary>
            IO thread
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpServerConnection._shouldStop">
            <summary>
            Signals if the loop should stop or not.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.#ctor">
            <summary>
            Creates a new instance of TcpIpServerConnection.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.#ctor(System.Int32)">
            <summary>
            Creates a new instance of TcpIpServerConnection.
            </summary>
            <param name="port">Port to listen for new connections.</param>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.Dispose(System.Boolean)">
            <summary>
            Dispose this instance.
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="E:Neitzel.Network.TcpIpServerConnection.MessageReceived">
            <summary>
            Event that a message was Received.
            </summary>
            <remarks>
            This event is handled by the io Thread of the TcpIpServerConnection so make sure that you do not
            use it for any stuff that is time consuming. Best is to queue Data only and use other threads
            to process it.
            
            Also be sure to handle all Exception if you do not want your connection closed! Exception handling is
            simply closing the connection to the client.
            </remarks>
        </member>
        <member name="P:Neitzel.Network.TcpIpServerConnection.Port">
            <summary>
            Port to listen on.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.Open">
            <summary>
            Open the socket and listen for new connections.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.Close">
            <summary>
            Close the socket and all client connections, dispose this instance.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.HandleIo">
            <summary>
            Handle the IO of the server. 
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpServerConnection.OnMessageReceived(System.Object,Neitzel.Network.BytesReceivedEventArgs)">
            <summary>
            A message was received.
            </summary>
            <param name="sender">Sender of the event. This is a client connection.</param>
            <param name="e">Message with received bytes.</param>
        </member>
        <member name="T:Neitzel.Network.TextMessageEventArgs">
            <summary>
            Event Argument that hands over receibed bytes.
            </summary>
        </member>
        <member name="P:Neitzel.Network.TextMessageEventArgs.Message">
            <summary>
            The message we received
            </summary>
        </member>
        <member name="M:Neitzel.Network.TextMessageEventArgs.#ctor">
            <summary>
            Create a new instance of TextMessageEventArgs.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TextMessageEventArgs.#ctor(System.String)">
            <summary>
            Create a new instance of TextMessageEventArgs.
            </summary>
            <param name="message">Received message.</param>
        </member>
        <member name="T:Neitzel.Network.BytesReceivedEventArgs">
            <summary>
            Event Argument that hands over receibed bytes.
            </summary>
        </member>
        <member name="P:Neitzel.Network.BytesReceivedEventArgs.ReceivedBytes">
            <summary>
            The bytes we received
            </summary>
        </member>
        <member name="M:Neitzel.Network.BytesReceivedEventArgs.#ctor">
            <summary>
            Create a new instance of ByteReceivedEventArgs.
            </summary>
        </member>
        <member name="M:Neitzel.Network.BytesReceivedEventArgs.#ctor(System.Byte[])">
            <summary>
            Create a new instance of ByteReceivedEventArgs.
            </summary>
            <param name="receivedBytes">Received bytes.</param>
        </member>
        <member name="T:Neitzel.Network.NetworkConstants">
            <summary>
            Constants used inside Neitzel.Network
            </summary>
        </member>
        <member name="F:Neitzel.Network.NetworkConstants.TraceSourceName">
            <summary>
            Name of the TraceSource used inside this package.
            </summary>
        </member>
        <member name="T:Neitzel.Network.StringDecoder">
            <summary>
            Decodes bytes from BytesReceivedEventArgs and send out Text messages
            </summary>
            <remarks>
            Such a decode class which subscribes to an MessageReceived event is possible as shown here
            and it makes it possible to have a chain of decoder who checks the messages for different things,
            but this design is not required. 
            </remarks>
        </member>
        <member name="E:Neitzel.Network.StringDecoder.MessageDecoded">
            <summary>
            Event that a Message was Received
            </summary>
            <remarks>
            This is done on the IO Thread of the socket so keep it a short as possible. Push execution to
            other Threads if required.
            </remarks>
        </member>
        <member name="P:Neitzel.Network.StringDecoder.InternalEncoder">
            <summary>
            Encoder used to encode strings.
            </summary>
        </member>
        <member name="F:Neitzel.Network.StringDecoder._receivedText">
            <summary>
            Text we received so far.
            </summary>
        </member>
        <member name="M:Neitzel.Network.StringDecoder.#ctor(System.Text.Encoding)">
            <summary>
            Create a new instance of StringDecoder.
            </summary>
            <param name="internalEncoder"></param>
        </member>
        <member name="M:Neitzel.Network.StringDecoder.MessageReceiver(System.Object,Neitzel.Network.BytesReceivedEventArgs)">
            <summary>
            MessageReceiver should receive the BytesReceivedEventArgs and should be registered with such an event.
            </summary>
            <param name="sender">Sender of that message.</param>
            <param name="bytesReceivedEvent">The bytes received event</param>
        </member>
        <member name="M:Neitzel.Network.StringDecoder.OnMessageDecoded(System.Object,Neitzel.Network.TextMessageEventArgs)">
            <summary>
            Message was decoded.
            </summary>
            <param name="sender">Sender of the message,</param>
            <param name="textMessageEvent">TextMessageEvent with message.</param>
        </member>
        <member name="M:Neitzel.Network.StringDecoder.EncodeMessage(System.String)">
            <summary>
            Encode a message with the internal encoder.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="T:Neitzel.Network.TcpIpClientConnection">
            <summary>
            A tcp/ip client connection which reads the data with its own thread.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpClientConnection.Logger">
            <summary>
            Tracesource for all log messages.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpClientConnection._endThread">
            <summary>
            A Flag to indicate, that the Thread should end.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpClientConnection._client">
            <summary>
            TcpClient used.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpClientConnection._listenerThread">
            <summary>
            Listener thread.
            </summary>
        </member>
        <member name="F:Neitzel.Network.TcpIpClientConnection._ioStream">
            <summary>
            Stream used for sending and receiving of data once we are connected.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.#ctor">
            <summary>
            Creates a new instance of TcpIpClientConnection
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new instance of TcpIpClientConnection
            </summary>
            <param name="hostName">HostName of server to connect to.</param>
            <param name="port">Port to connect to.</param>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.Finalize">
            <summary>
            Finalizer
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.Dispose(System.Boolean)">
            <summary>
            Dispose this instance.
            </summary>
            <param name="disposing">Active disposing or called by finalizer?</param>
        </member>
        <member name="E:Neitzel.Network.TcpIpClientConnection.MessageReceived">
            <summary>
            Event that a Message was Received
            </summary>
        </member>
        <member name="P:Neitzel.Network.TcpIpClientConnection.HostName">
            <summary>
            Hostname to connect to.
            </summary>
            <remarks>
            Changeing this  property does not have any effect on the connection.
            </remarks>
        </member>
        <member name="P:Neitzel.Network.TcpIpClientConnection.Port">
            <summary>
            Port number to connect to.
            </summary>
            <remarks>
            Changeing this property does not have any effect on a connection.</remarks>
        </member>
        <member name="P:Neitzel.Network.TcpIpClientConnection.Connected">
            <summary>
            Gets a value indicating whether we an connection is established or not.
            </summary>
        </member>
        <member name="P:Neitzel.Network.TcpIpClientConnection.BufferSize">
            <summary>
            Size of buffer used when receiving data.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.Connect">
            <summary>
            Connect to the server.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.SendMessage(System.Byte[])">
            <summary>
            Send a Message to the IRC ServerConfig
            </summary>
            <param name="message">A IRC Message to send</param>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.Close">
            <summary>
            Close the connection / Dispose this instance.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.OnMessageReceived(Neitzel.Network.BytesReceivedEventArgs)">
            <summary>
            Send the MessageReceived Event
            </summary>
            <param name="e">IrcMessageEventArgs to send.</param>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.RemoveAllHandlers">
            <summary>
            Remove all event handlers from all events. This makes sure, that we do not try to send any events while we Close / Dispose.
            </summary>
        </member>
        <member name="M:Neitzel.Network.TcpIpClientConnection.ListenForMessages">
            <summary>
            Thread routine, that will permanently waits for new messages and once
            a message is received completly, it will fire an event!
            private, so that it cannot be called from outside.
            </summary>
        </member>
        <member name="T:Neitzel.StringExtensions">
            <summary>
            Usefull extensions to the String class.
            </summary>
        </member>
        <member name="M:Neitzel.StringExtensions.Contains(System.String,System.Char[])">
            <summary>
            Checks if the source string contains any of the given characters.
            </summary>
            <param name="source">Source string to search in.</param>
            <param name="characters">Array of characters to search for.</param>
            <returns>True if a character was inside the source string, else false.</returns>
        </member>
        <member name="M:Neitzel.StringExtensions.FirstIndexOf(System.String,System.Char[])">
            <summary>
            Gets the first occurance of any given character inside the source string.
            </summary>
            <param name="source">Source string to search in.</param>
            <param name="characters">Characters to look for.</param>
            <returns>First index of a found char or -1 if no given character was found.</returns>
        </member>
        <member name="T:Neitzel.TraceSourceExtensions">
            <summary>
            Extensions to TraceSource
            </summary>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Critical(System.Diagnostics.TraceSource,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Log a critical event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="exception">Exception, can be null.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Critical(System.Diagnostics.TraceSource,System.Int32,System.String,System.Object[])">
            <summary>
            Log a critical event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Error(System.Diagnostics.TraceSource,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Log an error event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="exception">Exception, can be null.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Error(System.Diagnostics.TraceSource,System.Int32,System.String,System.Object[])">
            <summary>
            Log an error event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Warning(System.Diagnostics.TraceSource,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Log a warning event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="exception">Exception, can be null.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Warning(System.Diagnostics.TraceSource,System.Int32,System.String,System.Object[])">
            <summary>
            Log a warning event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Info(System.Diagnostics.TraceSource,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Log a informational event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="exception">Exception, can be null.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Info(System.Diagnostics.TraceSource,System.Int32,System.String,System.Object[])">
            <summary>
            Log a informational event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Verbose(System.Diagnostics.TraceSource,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Log a verbose event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="exception">Exception, can be null.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.Verbose(System.Diagnostics.TraceSource,System.Int32,System.String,System.Object[])">
            <summary>
            Log a verbose event
            </summary>
            <param name="source">TraceSource to log the event to.</param>
            <param name="id">Id to use.</param>
            <param name="message">Message</param>
            <param name="args">Arguments</param>
        </member>
        <member name="M:Neitzel.TraceSourceExtensions.CreateMessage(System.Exception,System.String,System.Object[])">
            <summary>
            Create the message from exception and original message.
            </summary>
            <param name="exception">Exception of this message (can be null)</param>
            <param name="message">Original message.</param>
            <param name="args">Arguments.</param>
            <returns></returns>
        </member>
        <member name="T:Neitzel.TypeExtensions">
            <summary>
            Extensions to Type.
            </summary>
        </member>
        <member name="M:Neitzel.TypeExtensions.CreateInstance``1(System.String)">
            <summary>
            Creates a new instance of a given class name.
            </summary>
            <typeparam name="T">The type of the class or (or a super class / interface)</typeparam>
            <param name="className">Class name of the class to create an instance of. Must contain a default constructor!</param>
            <returns></returns>
        </member>
    </members>
</doc>
